function approxPattern = hammingDistance( patterns, testingPattern )
% HAMMINGDISTANCE
%
% Autor: 
%        Grupo 2
% Descripcion:
%        Esta funcion obtiene a partir de un patron de testeo y los
%        patrones almacenados, el patron almacenado que mas se le aproxime
%        al de testeo
% Input:
%        - Los patrones almacenados
%        - El patron de testeo
% Output:
%        El patron almacenado que mas se le aproxime al de testeo

global N P;

values = zeros(N,1);

for i = 1:P
    pattern = patterns(:,i);
    value = 0;
    for j = 1:N
        value = value + (pattern(j)*(1-testingPattern(j)) + (1-pattern(j))*testingPattern(j));
    end
    values(i) = value;
end

min = values(1);
approxPatternIndex = 1;
for k = 2:P
    if values(k) < min
        min = values(k);
        approxPatternIndex = k;
    end
end

approxPattern = patterns(:,approxPatternIndex);

end

